In order for users to perform standard tasks such as queries and report navigation, the users are provided with an interface that includes selectable options. The various goals of interface design are enumerated below.
A first goal of interface design is to create an interface that is easy to use. Interfaces should not require the users to have any specific knowledge such as knowledge of SQL and the users should be insulated from relational database concepts.
Another goal of interface design is integration. All interfaces should access the same central repository and be able to create new reports, available to all users with access, regardless of the user's particular interface. A further goal of interface design is scalability. Any client/server interface should be able to work well across all commonly used desktop operating systems.
Yet another goal of interface design is the provision of maximum power and functionality. With regard to the goal of maximizing power and functionality, interface designers aim to provide features that enable users to specify filtering criteria and features that increase ease of navigation. Designers also aim to provide users with selectable views of data within a report. It is also desirable to provide a user with a mechanism for interacting with result sets. Another desired feature enables a user to change the appearance of graphs. A further desired feature is the ability to view information such as toolbar/menus, the grid, and the navigation through the reports simultaneously on a user screen.
Existing interfaces have generally been regulated by ActiveX and JAVA controls because of the high level of functionality provided in these contexts. Despite the functionality provided by the ActiveX and JAVA interfaces, many difficulties have been encountered while operating with these interfaces.
The applications are downloaded onto the client device and run within the browser. The client device would then make http calls back to the web server to get additional information. Installation on client machines often proves to be difficult and is often impeded by security at the client device. Furthermore, the functionality typically consumes a large quantity of memory on the client device. Finally, transmission of a large data set at the client device often consumes excessive bandwidth. Furthermore, the extensive use of java script functions to handle functionality can be cumbersome and subjects the system to java script bugs when dealing with non-standard characters.
Thus, even though these interfaces may have provided sufficient functionality, they have not consistently fulfilled all of the goals of interface design. Accordingly, an interface having all of the desired functionality, but eliminating the aforementioned problems is needed in the art.